library("FRESA.CAD")
library(readxl)
library(igraph)
op <- par(no.readonly = TRUE)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)
TADPOLE_D1_D2 <- read.csv("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2.csv")
TADPOLE_D1_D2_Dict <- read.csv("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2_Dict.csv")
TADPOLE_D1_D2_Dict_LR <- as.data.frame(read_excel("~/GitHub/BSWiMS/Data/TADPOLE/TADPOLE_D1_D2_Dict_LR.xlsx",sheet = "LeftRightFeatures"))
rownames(TADPOLE_D1_D2_Dict) <- TADPOLE_D1_D2_Dict$FLDNAME
# mm3 to mm
isVolume <- c("Ventricles","Hippocampus","WholeBrain","Entorhinal","Fusiform","MidTemp","ICV",
TADPOLE_D1_D2_Dict$FLDNAME[str_detect(TADPOLE_D1_D2_Dict$TEXT,"Volume")]
)
#TADPOLE_D1_D2[,isVolume] <- apply(TADPOLE_D1_D2[,isVolume],2,'^',(1/3))
TADPOLE_D1_D2[,isVolume] <- TADPOLE_D1_D2[,isVolume]^(1/3)
# mm2 to mm
isArea <- TADPOLE_D1_D2_Dict$FLDNAME[str_detect(TADPOLE_D1_D2_Dict$TEXT,"Area")]
TADPOLE_D1_D2[,isArea] <- sqrt(TADPOLE_D1_D2[,isArea])
# Get only cross sectional measurements
FreeSurfersetCross <- str_detect(colnames(TADPOLE_D1_D2),"UCSFFSX")
# The subset of baseline measurements
baselineTadpole <- subset(TADPOLE_D1_D2,VISCODE=="bl")
table(baselineTadpole$DX)
Dementia Dementia to MCI MCI MCI to Dementia
7 336 1 864 5
MCI to NL NL NL to MCI
2 521 1
rownames(baselineTadpole) <- baselineTadpole$PTID
validBaselineTadpole <- cbind(DX=baselineTadpole$DX,
AGE=baselineTadpole$AGE,
Gender=1*(baselineTadpole$PTGENDER=="Female"),
ADAS11=baselineTadpole$ADAS11,
ADAS13=baselineTadpole$ADAS13,
MMSE=baselineTadpole$MMSE,
RAVLT_immediate=baselineTadpole$RAVLT_immediate,
RAVLT_learning=baselineTadpole$RAVLT_learning,
RAVLT_forgetting=baselineTadpole$RAVLT_forgetting,
RAVLT_perc_forgetting=baselineTadpole$RAVLT_perc_forgetting,
FAQ=baselineTadpole$FAQ,
Ventricles=baselineTadpole$Ventricles,
Hippocampus=baselineTadpole$Hippocampus,
WholeBrain=baselineTadpole$WholeBrain,
Entorhinal=baselineTadpole$Entorhinal,
Fusiform=baselineTadpole$Fusiform,
MidTemp=baselineTadpole$MidTemp,
ICV=baselineTadpole$ICV,
baselineTadpole[,FreeSurfersetCross])
LeftFields <- TADPOLE_D1_D2_Dict_LR$LFN
names(LeftFields) <- LeftFields
LeftFields <- LeftFields[LeftFields %in% colnames(validBaselineTadpole)]
RightFields <- TADPOLE_D1_D2_Dict_LR$RFN
names(RightFields) <- RightFields
RightFields <- RightFields[RightFields %in% colnames(validBaselineTadpole)]
## Normalize to ICV
validBaselineTadpole$Ventricles=validBaselineTadpole$Ventricles/validBaselineTadpole$ICV
validBaselineTadpole$Hippocampus=validBaselineTadpole$Hippocampus/validBaselineTadpole$ICV
validBaselineTadpole$WholeBrain=validBaselineTadpole$WholeBrain/validBaselineTadpole$ICV
validBaselineTadpole$Entorhinal=validBaselineTadpole$Entorhinal/validBaselineTadpole$ICV
validBaselineTadpole$Fusiform=validBaselineTadpole$Fusiform/validBaselineTadpole$ICV
validBaselineTadpole$MidTemp=validBaselineTadpole$MidTemp/validBaselineTadpole$ICV
leftData <- validBaselineTadpole[,LeftFields]/validBaselineTadpole$ICV
RightData <- validBaselineTadpole[,RightFields]/validBaselineTadpole$ICV
## get mean and relative difference
meanLeftRight <- (leftData + RightData)/2
difLeftRight <- abs(leftData - RightData)
reldifLeftRight <- difLeftRight/meanLeftRight
colnames(meanLeftRight) <- paste("M",colnames(meanLeftRight),sep="_")
colnames(difLeftRight) <- paste("D",colnames(difLeftRight),sep="_")
colnames(reldifLeftRight) <- paste("RD",colnames(reldifLeftRight),sep="_")
validBaselineTadpole <- validBaselineTadpole[,!(colnames(validBaselineTadpole) %in%
c(LeftFields,RightFields))]
validBaselineTadpole <- cbind(validBaselineTadpole,meanLeftRight,reldifLeftRight)
## Remove columns with too many NA more than %15 of NA
nacount <- apply(is.na(validBaselineTadpole),2,sum)/nrow(validBaselineTadpole) < 0.15
diagnose <- validBaselineTadpole$DX
pander::pander(table(diagnose))
| Dementia | Dementia to MCI | MCI | MCI to Dementia | MCI to NL | NL | NL to MCI | |
|---|---|---|---|---|---|---|---|
| 7 | 336 | 1 | 864 | 5 | 2 | 521 | 1 |
validBaselineTadpole <- validBaselineTadpole[,nacount]
## Remove character columns
ischar <- sapply(validBaselineTadpole,class) == "character"
validBaselineTadpole <- validBaselineTadpole[,!ischar]
## Place back diagnose
validBaselineTadpole$DX <- diagnose
validBaselineTadpole <- validBaselineTadpole[complete.cases(validBaselineTadpole),]
ischar <- sapply(validBaselineTadpole,class) == "character"
validBaselineTadpole[,!ischar] <- sapply(validBaselineTadpole[,!ischar],as.numeric)
colnames(validBaselineTadpole) <- str_remove_all(colnames(validBaselineTadpole),"_UCSFFSX_11_02_15_UCSFFSX51_08_01_16")
colnames(validBaselineTadpole) <- str_replace_all(colnames(validBaselineTadpole)," ","_")
validBaselineTadpole$LONISID <- NULL
validBaselineTadpole$IMAGEUID <- NULL
validBaselineTadpole$LONIUID <- NULL
diagnose <- as.character(validBaselineTadpole$DX)
validBaselineTadpole$DX <- diagnose
pander::pander(table(validBaselineTadpole$DX))
| Dementia | Dementia to MCI | MCI | MCI to Dementia | MCI to NL | NL | NL to MCI |
|---|---|---|---|---|---|---|
| 244 | 1 | 711 | 2 | 2 | 452 | 1 |
validDX <- c("NL","MCI","Dementia")
validBaselineTadpole <- validBaselineTadpole[validBaselineTadpole$DX %in% validDX,]
validBaselineTadpole$DX <- as.factor(validBaselineTadpole$DX)
pander::pander(table(validBaselineTadpole$DX))
| Dementia | MCI | NL |
|---|---|---|
| 244 | 711 | 452 |
subjectsID <- rownames(validBaselineTadpole)
visitsID <- unique(TADPOLE_D1_D2$VISCODE)
baseDx <- TADPOLE_D1_D2[TADPOLE_D1_D2$VISCODE=="bl",c("PTID","DX","EXAMDATE")]
rownames(baseDx) <- baseDx$PTID
baseDx <- baseDx[subjectsID,]
lastDx <- baseDx
toDementia <- baseDx
table(lastDx$DX)
Dementia MCI NL 244 711 452
hasDementia <- lastDx$PTID[str_detect(lastDx$DX,"Dementia")]
for (vid in visitsID)
{
DxValue <- TADPOLE_D1_D2[TADPOLE_D1_D2$VISCODE==vid,c("PTID","DX","EXAMDATE")]
rownames(DxValue) <- DxValue$PTID
DxValue <- DxValue[DxValue$PTID %in% subjectsID,]
noDX <- DxValue$PTID[nchar(DxValue$DX) < 1]
print(length(noDX))
DxValue[noDX,] <- lastDx[noDX,]
inLast <- lastDx$PTID[lastDx$PTID %in% DxValue$PTID]
print(length(inLast))
lastDx[inLast,] <- DxValue[inLast,]
noDementia <- !(toDementia$PTID %in% hasDementia)
toDementia[noDementia,] <- lastDx[noDementia,]
hasDementia <- unique(c(hasDementia,lastDx$PTID[str_detect(lastDx$DX,"Dementia")]))
}
[1] 0 [1] 1407 [1] 2 [1] 1320 [1] 6 [1] 1212 [1] 23 [1] 1090 [1] 802 [1] 1054 [1] 29 [1] 706 [1] 20 [1] 212 [1] 14 [1] 167 [1] 32 [1] 551 [1] 25 [1] 297 [1] 18 [1] 130 [1] 665 [1] 665 [1] 112 [1] 112 [1] 176 [1] 176 [1] 177 [1] 177 [1] 624 [1] 624 [1] 251 [1] 251 [1] 159 [1] 159 [1] 7 [1] 7 [1] 17 [1] 99 [1] 9 [1] 63 [1] 1 [1] 1
table(lastDx$DX)
Dementia Dementia to MCI MCI MCI to Dementia MCI to NL
426 2 460 80 7
NL NL to Dementia NL to MCI
405 1 26
baseMCI <-baseDx$PTID[baseDx$DX == "MCI"]
lastDementia <- lastDx$PTID[str_detect(lastDx$DX,"Dementia")]
lastDementia2 <- toDementia$PTID[str_detect(toDementia$DX,"Dementia")]
lastNL <- lastDx$PTID[str_detect(lastDx$DX,"NL")]
MCIatBaseline <- baseDx[baseMCI,]
MCIatEvent <- toDementia[baseMCI,]
MCIatLast <- lastDx[baseMCI,]
MCIconverters <- MCIatBaseline[baseMCI %in% lastDementia,]
MCI_No_converters <- MCIatBaseline[!(baseMCI %in% MCIconverters$PTID),]
MCIconverters$TimeToEvent <- (as.Date(toDementia[MCIconverters$PTID,"EXAMDATE"])
- as.Date(MCIconverters$EXAMDATE))
sum(MCIconverters$TimeToEvent ==0)
[1] 0
MCIconverters$AtEventDX <- MCIatEvent[MCIconverters$PTID,"DX"]
MCIconverters$LastDX <- MCIatLast[MCIconverters$PTID,"DX"]
MCI_No_converters$TimeToEvent <- (as.Date(lastDx[MCI_No_converters$PTID,"EXAMDATE"])
- as.Date(MCI_No_converters$EXAMDATE))
MCI_No_converters$LastDX <- MCIatLast[MCI_No_converters$PTID,"DX"]
MCI_No_converters <- subset(MCI_No_converters,TimeToEvent > 0)
The heat map of the testing set.
cormat <- cor(validBaselineTadpole[,colnames(validBaselineTadpole) != "DX"],method="spearman")
diag(cormat) <- 0;
corrmax <- apply(cormat,2,max)
whomax <- colnames(cormat)[corrmax>0.75]
gplots::heatmap.2(abs(cormat[whomax,whomax]),
trace = "none",
scale = "none",
mar = c(10,10),
col=rev(heat.colors(5)),
main = "Baseline TADPOLE Correlation",
cexRow = 0.5,
cexCol = 0.5,
key.title=NA,
key.xlab="Spearman Correlation",
xlab="Feature", ylab="Feature")
par(op)
Here we will diagnose ADAS13
TrainFraction <- 0.5;
TADPOLECrossMRI <- validBaselineTadpole
summary(TADPOLECrossMRI$ADAS13)
Min. 1st Qu. Median Mean 3rd Qu. Max. 0.00 9.00 14.67 16.37 22.00 51.00
TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL
TADPOLECrossMRI$DX <- NULL
trainSet <- sample(nrow(TADPOLECrossMRI),nrow(TADPOLECrossMRI)*TrainFraction)
TADPOLECrossMRITrain <- TADPOLECrossMRI[trainSet,]
TADPOLECrossMRITest <- TADPOLECrossMRI[-trainSet,]
bml <- BSWiMS.model(ADAS13~.,TADPOLECrossMRITrain,maxTrainModelSize=50,NumberofRepeats = 20)
[++-+–+-++-++-+-+-+–++-++-+-++-+-+++-++-+-+-++-+-+-]…
pander::pander(bml$bagging$Jaccard.SM)
0.299
fs <- bml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)
sm <- summary(bml)
pander::pander(sm$coefficients)
| Estimate | lower | mean | upper | u.MSE | r.MSE | model.MSE | NeRI | F.pvalue | t.pvalue | Sign.pvalue | Wilcox.pvalue | Frequency | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M_ST40TA | -135.0232 | -164.312 | -135.0232 | -105.7341 | 64.3 | 53.2 | 48.9 | 0.0820 | 0.00e+00 | 1.79e-06 | 0.01401 | 0.000785 | 0.15 |
| M_ST24CV | -75.3109 | -99.777 | -75.3109 | -50.8450 | 60.8 | 47.0 | 44.6 | 0.0561 | 8.04e-10 | 1.23e-05 | 0.04898 | 0.001946 | 0.45 |
| RD_ST32TA | 21.8615 | 14.440 | 21.8615 | 29.2831 | 75.0 | 43.4 | 41.4 | 0.0064 | 3.88e-09 | 1.39e-02 | 0.48410 | 0.147555 | 1.00 |
| Hippocampus | -161.7606 | -216.992 | -161.7606 | -106.5289 | 58.6 | 43.4 | 41.4 | 0.0745 | 4.73e-09 | 7.64e-04 | 0.02399 | 0.009590 | 1.00 |
| M_ST24TA | -338.3565 | -456.667 | -338.3565 | -220.0458 | 56.7 | 43.3 | 41.4 | 0.0886 | 1.04e-08 | 1.07e-05 | 0.00874 | 0.001001 | 1.00 |
| M_ST56TS | 1873.9196 | 1182.131 | 1873.9196 | 2565.7081 | 81.3 | 43.1 | 41.4 | 0.0558 | 5.51e-08 | 7.43e-04 | 0.06147 | 0.015960 | 1.00 |
| M_ST60SA | 37.1529 | 22.451 | 37.1529 | 51.8548 | 83.0 | 45.5 | 44.0 | 0.0420 | 3.65e-07 | 9.07e-03 | 0.12496 | 0.066805 | 0.55 |
| M_ST54TS | 89.5081 | 53.603 | 89.5081 | 125.4126 | 81.6 | 53.1 | 51.2 | 0.0555 | 5.14e-07 | 1.07e-01 | 0.06244 | 0.168719 | 0.10 |
| M_ST12SV | -82.8267 | -117.084 | -82.8267 | -48.5698 | 61.0 | 46.0 | 44.6 | 0.0684 | 1.07e-06 | 1.55e-03 | 0.02901 | 0.018707 | 0.45 |
| M_ST39CV | 57.2308 | 33.238 | 57.2308 | 81.2234 | 80.0 | 42.2 | 40.9 | 0.0430 | 1.47e-06 | 4.18e-03 | 0.11676 | 0.048345 | 0.40 |
| M_ST52TA | -360.3237 | -511.408 | -360.3237 | -209.2389 | 71.4 | 43.5 | 42.2 | 0.0606 | 1.47e-06 | 3.19e-03 | 0.05055 | 0.020820 | 0.55 |
| M_ST31CV | -35.1903 | -50.685 | -35.1903 | -19.6953 | 68.0 | 43.7 | 42.5 | 0.0441 | 4.27e-06 | 4.40e-03 | 0.09825 | 0.024367 | 0.40 |
| M_ST62TA | 233.7800 | 130.465 | 233.7800 | 337.0950 | 81.3 | 42.9 | 41.7 | 0.0353 | 4.60e-06 | 4.52e-02 | 0.15638 | 0.145967 | 0.55 |
| M_ST47TS | 522.6854 | 290.780 | 522.6854 | 754.5905 | 82.0 | 45.8 | 44.5 | 0.0629 | 4.99e-06 | 7.50e-04 | 0.04675 | 0.009359 | 0.40 |
| RD_ST40CV | 12.5238 | 6.621 | 12.5238 | 18.4264 | 77.1 | 44.2 | 43.1 | 0.0235 | 1.60e-05 | 5.58e-02 | 0.24577 | 0.126048 | 0.65 |
| RD_ST31TA | 19.3108 | 10.034 | 19.3108 | 28.5872 | 78.1 | 42.4 | 41.4 | 0.0583 | 2.25e-05 | 7.87e-03 | 0.05931 | 0.063638 | 1.00 |
| M_ST57TA | -79.8265 | -118.438 | -79.8265 | -41.2148 | 73.9 | 42.5 | 41.5 | 0.0327 | 2.54e-05 | 3.99e-02 | 0.20215 | 0.179564 | 0.15 |
| M_ST32CV | -14.5650 | -21.739 | -14.5650 | -7.3907 | 65.5 | 45.7 | 44.7 | 0.0223 | 3.46e-05 | 5.56e-02 | 0.28634 | 0.167421 | 0.15 |
| M_ST55CV | -55.4271 | -82.734 | -55.4271 | -28.1204 | 72.9 | 43.9 | 42.9 | 0.0509 | 3.47e-05 | 9.44e-03 | 0.08908 | 0.067193 | 0.50 |
| M_ST30SV | 48.4884 | 23.728 | 48.4884 | 73.2491 | 62.1 | 42.8 | 41.9 | 0.0504 | 6.20e-05 | 1.74e-03 | 0.08333 | 0.017938 | 0.90 |
| RD_ST40TA | 3.4142 | 1.621 | 3.4142 | 5.2078 | 74.3 | 45.4 | 44.5 | 0.0316 | 9.54e-05 | 6.37e-02 | 0.20165 | 0.169337 | 0.25 |
| M_ST40CV | -61.6334 | -94.073 | -61.6334 | -29.1935 | 63.7 | 42.9 | 42.0 | 0.0314 | 9.81e-05 | 7.31e-02 | 0.21204 | 0.121611 | 0.65 |
| M_ST60CV | 19.0522 | 8.790 | 19.0522 | 29.3144 | 76.6 | 41.8 | 41.0 | 0.0327 | 1.37e-04 | 3.42e-02 | 0.20305 | 0.108577 | 0.15 |
| M_ST13SA | -4.1309 | -6.358 | -4.1309 | -1.9039 | 79.5 | 42.3 | 41.5 | 0.0441 | 1.39e-04 | 2.55e-01 | 0.12625 | 0.171488 | 0.10 |
| M_ST65SV | 36.5800 | 16.835 | 36.5800 | 56.3250 | 81.3 | 42.7 | 41.9 | 0.0377 | 1.41e-04 | 3.61e-02 | 0.13739 | 0.088187 | 0.20 |
| M_ST17SV | 18.1184 | 8.030 | 18.1184 | 28.2070 | 83.8 | 43.8 | 43.0 | 0.0597 | 2.16e-04 | 2.93e-03 | 0.05780 | 0.023159 | 0.30 |
| AGE | -0.0289 | -0.045 | -0.0289 | -0.0127 | 81.9 | 42.5 | 41.8 | 0.0356 | 2.29e-04 | 3.02e-03 | 0.16288 | 0.037139 | 0.30 |
| RD_ST47TS | -1.8704 | -2.938 | -1.8704 | -0.8028 | 82.9 | 45.5 | 44.8 | 0.0427 | 2.98e-04 | 3.75e-03 | 0.12913 | 0.073220 | 0.20 |
| RD_ST52TA | 1.7988 | 0.727 | 1.7988 | 2.8706 | 79.8 | 45.7 | 45.0 | 0.0299 | 5.02e-04 | 6.11e-03 | 0.22485 | 0.031818 | 0.10 |
| RD_ST56TA | 7.4024 | 2.507 | 7.4024 | 12.2982 | 81.9 | 45.0 | 44.5 | 0.0445 | 1.52e-03 | 7.59e-02 | 0.11513 | 0.193209 | 0.35 |
| Ventricles | -5.8305 | -9.906 | -5.8305 | -1.7549 | 74.5 | 43.3 | 42.8 | 0.0200 | 2.52e-03 | 2.12e-02 | 0.28810 | 0.089125 | 0.65 |
| M_ST24TS | 59.2762 | 17.626 | 59.2762 | 100.9265 | 79.4 | 51.3 | 50.7 | 0.0541 | 2.64e-03 | 5.27e-03 | 0.06847 | 0.022925 | 0.10 |
pander::pander(bml$univariate[bml$selectedfeatures,])
| Name | RName | ZUni | |
|---|---|---|---|
| M_ST24TA | M_ST24TA | M_ST24TA | Inf |
| RD_ST32TA | RD_ST32TA | RD_ST32TA | Inf |
| Hippocampus | Hippocampus | Hippocampus | Inf |
| RD_ST31TA | RD_ST31TA | RD_ST31TA | 7.19 |
| M_ST56TS | M_ST56TS | M_ST56TS | 4.85 |
| M_ST30SV | M_ST30SV | M_ST30SV | Inf |
| Ventricles | Ventricles | Ventricles | Inf |
| M_ST13SA | M_ST13SA | M_ST13SA | 6.27 |
| M_ST40CV | M_ST40CV | M_ST40CV | Inf |
| ST68SV | ST68SV | ST68SV | 4.78 |
| AGE | AGE | AGE | 4.30 |
| M_ST57TA | M_ST57TA | M_ST57TA | Inf |
| M_ST39CV | M_ST39CV | M_ST39CV | 5.90 |
| M_ST62TA | M_ST62TA | M_ST62TA | 4.83 |
| M_ST60CV | M_ST60CV | M_ST60CV | 8.13 |
| M_ST55SA | M_ST55SA | M_ST55SA | 5.22 |
| M_ST24CV | M_ST24CV | M_ST24CV | Inf |
| M_ST31CV | M_ST31CV | M_ST31CV | Inf |
| M_ST52TA | M_ST52TA | M_ST52TA | Inf |
| RD_ST40CV | RD_ST40CV | RD_ST40CV | 7.82 |
| M_ST55CV | M_ST55CV | M_ST55CV | Inf |
| M_ST65SV | M_ST65SV | M_ST65SV | 4.91 |
| RD_ST47TS | RD_ST47TS | RD_ST47TS | 3.14 |
| M_ST12SV | M_ST12SV | M_ST12SV | Inf |
| M_ST32CV | M_ST32CV | M_ST32CV | Inf |
| M_ST17SV | M_ST17SV | M_ST17SV | 1.60 |
| RD_ST40TA | RD_ST40TA | RD_ST40TA | Inf |
| RD_ST56TA | RD_ST56TA | RD_ST56TA | 4.31 |
| M_ST60SA | M_ST60SA | M_ST60SA | 3.03 |
| RD_ST52TA | RD_ST52TA | RD_ST52TA | 6.05 |
| M_ST47TS | M_ST47TS | M_ST47TS | 4.16 |
| M_ST40TA | M_ST40TA | M_ST40TA | Inf |
| M_ST13TS | M_ST13TS | M_ST13TS | 6.31 |
| M_ST60TA | M_ST60TA | M_ST60TA | Inf |
| M_ST24TS | M_ST24TS | M_ST24TS | 6.37 |
| RD_ST29SV | RD_ST29SV | RD_ST29SV | 7.10 |
| M_ST54TS | M_ST54TS | M_ST54TS | 4.63 |
| RD_ST52CV | RD_ST52CV | RD_ST52CV | 4.62 |
| RD_ST24TA | RD_ST24TA | RD_ST24TA | 8.21 |
| M_ST32SA | M_ST32SA | M_ST32SA | 7.68 |
| M_ST36TS | M_ST36TS | M_ST36TS | 1.09 |
| M_ST47TA | M_ST47TA | M_ST47TA | 6.14 |
prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(bml,TADPOLECrossMRITest)),"ADAS13")
ADAS13
pander::pander(prreg)
corci:
| cor | ||
|---|---|---|
| 0.707 | 0.668 | 0.742 |
biasci: -0.261, -0.774 and 0.252
RMSEci: 6.94, 6.59 and 7.32
spearmanci:
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.672 | 0.626 | 0.713 |
MAEci:
| 50% | 2.5% | 97.5% |
|---|---|---|
| 5.4 | 5.09 | 5.72 |
pearson:
| Test statistic | df | P value | Alternative hypothesis | cor |
|---|---|---|---|---|
| 26.5 | 702 | 1.37e-107 * * * | two.sided | 0.707 |
par(op)
cmax <- apply(bml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.250])
cmax <- cmax[cnames]
adma <- bml$bagging$formulaNetwork[cnames,cnames]
adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr
fc <- cluster_optimal(gr)
plot(fc, gr,
edge.width=5*E(gr)$weight,
vertex.size=20*cmax,
vertex.label.cex=0.5,
vertex.label.dist=0,
main="ADAS13 Feature Association")
par(op)
clusterFeatures <- fc$names
sm$coefficients$Rx2 <- (sm$coefficients$r.MSE-sm$coefficients$model.MSE)/sm$coefficients$r.MSE
tableADAS13 <- sm$coefficients[clusterFeatures,
c("Estimate",
"lower",
"mean",
"upper",
"model.MSE",
"Rx2",
"F.pvalue",
"Frequency")]
nugget <- fc$membership
names(nugget) <- clusterFeatures
tableADAS13$Cluster <- nugget[rownames(tableADAS13)]
rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()
for (ddet in c(1:length(rnames)))
{
description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames
tableADAS13$Description <- description[rownames(tableADAS13)]
pander::pander(tableADAS13)
| Estimate | lower | mean | upper | model.MSE | Rx2 | F.pvalue | Frequency | Cluster | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| M_ST24TA | -338.3565 | -456.667 | -338.3565 | -220.0458 | 41.4 | 0.0438 | 1.04e-08 | 1.00 | 1 | Cortical Thickness Average of LeftEntorhinal |
| RD_ST32TA | 21.8615 | 14.440 | 21.8615 | 29.2831 | 41.4 | 0.0464 | 3.88e-09 | 1.00 | 1 | Cortical Thickness Average of LeftInferiorTemporal |
| Hippocampus | -161.7606 | -216.992 | -161.7606 | -106.5289 | 41.4 | 0.0459 | 4.73e-09 | 1.00 | 1 | NA |
| RD_ST31TA | 19.3108 | 10.034 | 19.3108 | 28.5872 | 41.4 | 0.0235 | 2.25e-05 | 1.00 | 1 | Cortical Thickness Average of LeftInferiorParietal |
| M_ST56TS | 1873.9196 | 1182.131 | 1873.9196 | 2565.7081 | 41.4 | 0.0395 | 5.51e-08 | 1.00 | 1 | Cortical Thickness Standard Deviation of LeftSuperiorFrontal |
| M_ST30SV | 48.4884 | 23.728 | 48.4884 | 73.2491 | 41.9 | 0.0213 | 6.20e-05 | 0.90 | 1 | Volume (WM Parcellation) of LeftInferiorLateralVentricle |
| Ventricles | -5.8305 | -9.906 | -5.8305 | -1.7549 | 42.8 | 0.0111 | 2.52e-03 | 0.65 | 2 | NA |
| M_ST40CV | -61.6334 | -94.073 | -61.6334 | -29.1935 | 42.0 | 0.0197 | 9.81e-05 | 0.65 | 1 | Volume (Cortical Parcellation) of LeftMiddleTemporal |
| AGE | -0.0289 | -0.045 | -0.0289 | -0.0127 | 41.8 | 0.0174 | 2.29e-04 | 0.30 | 1 | NA |
| M_ST39CV | 57.2308 | 33.238 | 57.2308 | 81.2234 | 40.9 | 0.0307 | 1.47e-06 | 0.40 | 1 | Volume (Cortical Parcellation) of LeftMedialOrbitofrontal |
| M_ST62TA | 233.7800 | 130.465 | 233.7800 | 337.0950 | 41.7 | 0.0275 | 4.60e-06 | 0.55 | 1 | Cortical Thickness Average of LeftTransverseTemporal |
| M_ST24CV | -75.3109 | -99.777 | -75.3109 | -50.8450 | 44.6 | 0.0507 | 8.04e-10 | 0.45 | 2 | Volume (Cortical Parcellation) of LeftEntorhinal |
| M_ST31CV | -35.1903 | -50.685 | -35.1903 | -19.6953 | 42.5 | 0.0281 | 4.27e-06 | 0.40 | 2 | Volume (Cortical Parcellation) of LeftInferiorParietal |
| M_ST52TA | -360.3237 | -511.408 | -360.3237 | -209.2389 | 42.2 | 0.0307 | 1.47e-06 | 0.55 | 1 | Cortical Thickness Average of LeftPrecuneus |
| RD_ST40CV | 12.5238 | 6.621 | 12.5238 | 18.4264 | 43.1 | 0.0247 | 1.60e-05 | 0.65 | 2 | Volume (Cortical Parcellation) of LeftMiddleTemporal |
| M_ST55CV | -55.4271 | -82.734 | -55.4271 | -28.1204 | 42.9 | 0.0226 | 3.47e-05 | 0.50 | 1 | Volume (Cortical Parcellation) of LeftRostralMiddleFrontal |
| M_ST12SV | -82.8267 | -117.084 | -82.8267 | -48.5698 | 44.6 | 0.0315 | 1.07e-06 | 0.45 | 2 | Volume (WM Parcellation) of LeftAmygdala |
| M_ST17SV | 18.1184 | 8.030 | 18.1184 | 28.2070 | 43.0 | 0.0175 | 2.16e-04 | 0.30 | 2 | Volume (WM Parcellation) of LeftCerebellumCortex |
| RD_ST40TA | 3.4142 | 1.621 | 3.4142 | 5.2078 | 44.5 | 0.0199 | 9.54e-05 | 0.25 | 2 | Cortical Thickness Average of LeftMiddleTemporal |
| RD_ST56TA | 7.4024 | 2.507 | 7.4024 | 12.2982 | 44.5 | 0.0124 | 1.52e-03 | 0.35 | 2 | Cortical Thickness Average of LeftSuperiorFrontal |
| M_ST60SA | 37.1529 | 22.451 | 37.1529 | 51.8548 | 44.0 | 0.0346 | 3.65e-07 | 0.55 | 2 | Surface Area of LeftTemporalPole |
| M_ST47TS | 522.6854 | 290.780 | 522.6854 | 754.5905 | 44.5 | 0.0276 | 4.99e-06 | 0.40 | 2 | Cortical Thickness Standard Deviation of LeftParsTriangularis |
TADPOLECrossMRITrainD <- GDSTMDecorrelation(TADPOLECrossMRITrain,Outcome="ADAS13",
thr=0.6,
type="RLM",
method="spearman",
verbose = TRUE)
#>
#> Included: 204 , Uni p: 0.01148552 To Outcome: 132 , Base: 7 , In Included: 7 , Base Cor: 18
#> 1 , Top: 40 < 0.6 >( 2 )[ 1 : 0 : 0.594 ]( 39 , 95 , 0 ),<>Tot Used: 134 , Added: 95 , Zero Std: 0 , Max Cor: 0.9558371
#> 2 , Top: 27 < 0.6 >( 1 )[ 1 : 0 : 0.594 ]( 27 , 38 , 39 ),<>Tot Used: 159 , Added: 38 , Zero Std: 0 , Max Cor: 0.9365909
#> 3 , Top: 18 < 0.6 >( 4 )[ 1 : 0 : 0 ]( 15 , 20 , 63 ),<>Tot Used: 160 , Added: 20 , Zero Std: 0 , Max Cor: 0.9408258
#> 4 , Top: 10 < 0.6 >( 1 )[ 1 : 0 : 0 ]( 10 , 11 , 74 ),<>Tot Used: 161 , Added: 11 , Zero Std: 0 , Max Cor: 0.6387514
#> 5 , Top: 2 < 0.6 >( 1 )[ 1 : 0 : 0.6 ]( 2 , 2 , 81 ),<>Tot Used: 161 , Added: 2 , Zero Std: 0 , Max Cor: 0.7764574
#> 6 , Top: 1 < 0.6 >( 1 )[ 1 : 0 : 0.6 ]( 1 , 1 , 81 ),<>Tot Used: 161 , Added: 1 , Zero Std: 0 , Max Cor: 0.5988357
#> [ 7 ], 0.593303 . Cor to Base: 101 , ABase: 69
TADPOLECrossMRITestD <- predictDecorrelate(TADPOLECrossMRITrainD,TADPOLECrossMRITest)
TrainFraction <- 0.60;
TADPOLECrossMRI <- subset(validBaselineTadpole,DX == "Dementia" | DX == "MCI")
table(TADPOLECrossMRI$DX)
Dementia MCI NL 244 711 0
TADPOLECrossMRI$DX <- 1*(as.character(TADPOLECrossMRI$DX) == "Dementia")
table(TADPOLECrossMRI$DX)
0 1 711 244
TADPOLECrossMRI$ADAS13 <- NULL
TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL
TADPOLE_Cases <- subset(TADPOLECrossMRI,DX==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,DX==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)
TADPOLE_DX_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_DX_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in% rownames(TADPOLE_DX_TRAIN)),]
table(TADPOLE_DX_TEST$DX)
0 1 285 98
par(op)
bDXml <- BSWiMS.model(DX~.,TADPOLE_DX_TRAIN,NumberofRepeats = 20)
[++++-+-+++++-+++++-+++++++-+++++-+-++++–++++++-+++—-+++++–++++–+-++++++-++++++-+++-++-+++++-+++-++-++++++-++++++-++++-+-+++++–++-+–]……….
pander::pander(bDXml$bagging$Jaccard.SM)
0.0986
fs <- bDXml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)
sm <- summary(bDXml)
pander::pander(sm$coefficients)
| Estimate | lower | OR | upper | u.Accuracy | r.Accuracy | full.Accuracy | u.AUC | r.AUC | full.AUC | IDI | NRI | z.IDI | z.NRI | Frequency | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M_ST24TA | -48.263 | 1.01e-24 | 1.10e-21 | 1.19e-18 | 0.727 | 0.691 | 0.748 | 0.724 | 0.690 | 0.757 | 0.1146 | 0.676 | 10.63 | 10.55 | 1.00 |
| M_ST24CV | -27.345 | 1.26e-14 | 1.33e-12 | 1.41e-10 | 0.694 | 0.695 | 0.741 | 0.691 | 0.694 | 0.745 | 0.0888 | 0.553 | 9.01 | 8.54 | 1.00 |
| Hippocampus | -14.025 | 6.53e-08 | 8.11e-07 | 1.01e-05 | 0.683 | 0.684 | 0.719 | 0.687 | 0.683 | 0.726 | 0.0886 | 0.538 | 8.96 | 8.29 | 0.90 |
| M_ST58TA | -7.204 | 2.05e-04 | 7.43e-04 | 2.69e-03 | 0.646 | 0.667 | 0.711 | 0.646 | 0.667 | 0.716 | 0.0771 | 0.522 | 8.44 | 7.92 | 0.10 |
| M_ST12SV | -20.770 | 1.36e-11 | 9.54e-10 | 6.69e-08 | 0.684 | 0.694 | 0.723 | 0.692 | 0.694 | 0.731 | 0.0639 | 0.540 | 7.66 | 8.22 | 0.90 |
| M_ST60TA | -23.861 | 2.25e-13 | 4.34e-11 | 8.36e-09 | 0.659 | 0.683 | 0.716 | 0.661 | 0.685 | 0.718 | 0.0627 | 0.465 | 7.50 | 7.04 | 0.70 |
| M_ST32TA | -68.352 | 6.65e-37 | 2.07e-30 | 6.42e-24 | 0.663 | 0.702 | 0.721 | 0.668 | 0.705 | 0.728 | 0.0656 | 0.532 | 7.46 | 8.13 | 0.95 |
| M_ST26TA | -9.939 | 7.13e-06 | 4.83e-05 | 3.27e-04 | 0.647 | 0.707 | 0.728 | 0.650 | 0.707 | 0.727 | 0.0697 | 0.460 | 7.40 | 7.07 | 0.10 |
| M_ST40TA | -28.750 | 6.76e-16 | 3.27e-13 | 1.58e-10 | 0.671 | 0.687 | 0.725 | 0.673 | 0.687 | 0.727 | 0.0618 | 0.498 | 7.36 | 7.59 | 0.45 |
| M_ST40CV | -7.280 | 1.28e-04 | 6.90e-04 | 3.71e-03 | 0.668 | 0.693 | 0.716 | 0.668 | 0.686 | 0.719 | 0.0550 | 0.458 | 7.09 | 6.91 | 0.60 |
| M_ST32CV | -17.997 | 1.96e-10 | 1.53e-08 | 1.19e-06 | 0.684 | 0.727 | 0.751 | 0.682 | 0.726 | 0.757 | 0.0544 | 0.514 | 6.92 | 7.80 | 1.00 |
| M_ST32SA | -2.607 | 3.75e-02 | 7.37e-02 | 1.45e-01 | 0.627 | 0.693 | 0.724 | 0.619 | 0.691 | 0.725 | 0.0463 | 0.487 | 6.52 | 7.36 | 0.60 |
| M_ST31CV | -10.484 | 1.52e-06 | 2.80e-05 | 5.16e-04 | 0.648 | 0.716 | 0.731 | 0.648 | 0.716 | 0.740 | 0.0450 | 0.369 | 6.36 | 5.52 | 0.75 |
| M_ST30SV | 4.199 | 1.71e+01 | 6.66e+01 | 2.59e+02 | 0.674 | 0.718 | 0.733 | 0.671 | 0.718 | 0.738 | 0.0352 | 0.308 | 5.63 | 4.58 | 1.00 |
| M_ST60TS | 48.891 | 5.52e+13 | 1.71e+21 | 5.31e+28 | 0.615 | 0.700 | 0.717 | 0.610 | 0.709 | 0.724 | 0.0312 | 0.416 | 5.47 | 6.23 | 0.60 |
| M_ST60SA | 1.250 | 2.23e+00 | 3.49e+00 | 5.46e+00 | 0.519 | 0.733 | 0.760 | 0.516 | 0.735 | 0.770 | 0.0308 | 0.339 | 5.37 | 5.05 | 0.10 |
| M_ST13TS | 107.209 | 4.04e+29 | 3.63e+46 | 3.27e+63 | 0.594 | 0.714 | 0.719 | 0.578 | 0.715 | 0.723 | 0.0351 | 0.333 | 5.31 | 4.96 | 0.65 |
| M_ST40TS | 18.046 | 7.27e+04 | 6.88e+07 | 6.50e+10 | 0.577 | 0.707 | 0.721 | 0.550 | 0.705 | 0.722 | 0.0314 | 0.355 | 5.10 | 5.30 | 0.20 |
| M_ST46TS | 151.043 | 2.49e+41 | 3.95e+65 | 6.29e+89 | 0.569 | 0.736 | 0.748 | 0.550 | 0.744 | 0.756 | 0.0306 | 0.330 | 5.07 | 4.92 | 1.00 |
| RD_ST52TA | 1.761 | 2.96e+00 | 5.82e+00 | 1.14e+01 | 0.608 | 0.722 | 0.732 | 0.553 | 0.727 | 0.735 | 0.0294 | 0.211 | 5.05 | 3.18 | 0.85 |
| RD_ST32TA | 0.965 | 1.81e+00 | 2.62e+00 | 3.79e+00 | 0.645 | 0.707 | 0.728 | 0.610 | 0.715 | 0.732 | 0.0295 | 0.425 | 5.00 | 6.42 | 0.70 |
| RD_ST35TA | 1.302 | 2.23e+00 | 3.68e+00 | 6.06e+00 | 0.625 | 0.701 | 0.720 | 0.600 | 0.706 | 0.723 | 0.0278 | 0.383 | 4.99 | 5.75 | 0.75 |
| M_ST129TS | 40.276 | 3.94e+10 | 3.10e+17 | 2.45e+24 | 0.585 | 0.721 | 0.728 | 0.564 | 0.723 | 0.728 | 0.0290 | 0.287 | 4.87 | 4.27 | 0.40 |
| M_ST24SA | 6.624 | 6.07e+01 | 7.53e+02 | 9.35e+03 | 0.538 | 0.726 | 0.740 | 0.549 | 0.735 | 0.743 | 0.0270 | 0.202 | 4.85 | 2.98 | 0.75 |
| M_ST35SA | -0.478 | 5.10e-01 | 6.20e-01 | 7.54e-01 | 0.554 | 0.701 | 0.723 | 0.563 | 0.703 | 0.730 | 0.0238 | 0.314 | 4.76 | 4.65 | 0.20 |
| M_ST39CV | 5.651 | 2.87e+01 | 2.85e+02 | 2.82e+03 | 0.565 | 0.718 | 0.730 | 0.555 | 0.723 | 0.735 | 0.0250 | 0.226 | 4.73 | 3.33 | 0.45 |
| M_ST43TS | 151.462 | 2.65e+38 | 6.01e+65 | 1.37e+93 | 0.548 | 0.727 | 0.734 | 0.530 | 0.732 | 0.739 | 0.0259 | 0.274 | 4.55 | 4.06 | 1.00 |
| M_ST47CV | 3.612 | 7.90e+00 | 3.70e+01 | 1.74e+02 | 0.551 | 0.712 | 0.726 | 0.545 | 0.720 | 0.733 | 0.0220 | 0.258 | 4.49 | 3.81 | 0.30 |
| M_ST21SV | 2.141 | 3.38e+00 | 8.51e+00 | 2.14e+01 | 0.615 | 0.718 | 0.721 | 0.614 | 0.720 | 0.727 | 0.0241 | 0.249 | 4.47 | 3.67 | 0.20 |
| M_ST26CV | -1.809 | 7.47e-02 | 1.64e-01 | 3.59e-01 | 0.659 | 0.711 | 0.721 | 0.655 | 0.711 | 0.723 | 0.0232 | 0.332 | 4.34 | 4.94 | 0.25 |
| RD_ST55TA | 0.358 | 1.22e+00 | 1.43e+00 | 1.67e+00 | 0.623 | 0.712 | 0.724 | 0.590 | 0.717 | 0.724 | 0.0220 | 0.318 | 4.30 | 4.75 | 0.15 |
| RD_ST66SV | -0.424 | 5.33e-01 | 6.55e-01 | 8.04e-01 | 0.524 | 0.724 | 0.731 | 0.578 | 0.728 | 0.735 | 0.0184 | 0.332 | 3.92 | 5.06 | 0.55 |
| M_ST43TA | 8.373 | 6.47e+01 | 4.33e+03 | 2.90e+05 | 0.562 | 0.724 | 0.728 | 0.545 | 0.728 | 0.731 | 0.0163 | 0.274 | 3.78 | 4.06 | 0.15 |
pander::pander(bDXml$univariate[bDXml$selectedfeatures,])
| Name | RName | ZUni | |
|---|---|---|---|
| M_ST24TA | M_ST24TA | M_ST24TA | 10.60 |
| M_ST32CV | M_ST32CV | M_ST32CV | 8.92 |
| M_ST24CV | M_ST24CV | M_ST24CV | 9.26 |
| M_ST46TS | M_ST46TS | M_ST46TS | 2.35 |
| M_ST31CV | M_ST31CV | M_ST31CV | 7.46 |
| M_ST30SV | M_ST30SV | M_ST30SV | 8.76 |
| M_ST60SA | M_ST60SA | M_ST60SA | 1.69 |
| M_ST24SA | M_ST24SA | M_ST24SA | 1.92 |
| Hippocampus | Hippocampus | Hippocampus | 9.46 |
| RD_ST52TA | RD_ST52TA | RD_ST52TA | 4.44 |
| M_ST43TS | M_ST43TS | M_ST43TS | 2.56 |
| M_ST12SV | M_ST12SV | M_ST12SV | 8.92 |
| RD_ST32TA | RD_ST32TA | RD_ST32TA | 4.42 |
| M_ST51TA | M_ST51TA | M_ST51TA | 3.67 |
| M_ST129TS | M_ST129TS | M_ST129TS | 3.38 |
| M_ST47CV | M_ST47CV | M_ST47CV | 1.88 |
| M_ST32TA | M_ST32TA | M_ST32TA | 8.12 |
| M_ST60TS | M_ST60TS | M_ST60TS | 4.09 |
| M_ST56TS | M_ST56TS | M_ST56TS | 2.72 |
| M_ST43TA | M_ST43TA | M_ST43TA | 2.80 |
| M_ST39CV | M_ST39CV | M_ST39CV | 2.94 |
| M_ST13TS | M_ST13TS | M_ST13TS | 4.64 |
| M_ST60TA | M_ST60TA | M_ST60TA | 7.09 |
| RD_ST35TA | RD_ST35TA | RD_ST35TA | 3.69 |
| M_ST40CV | M_ST40CV | M_ST40CV | 7.68 |
| RD_ST66SV | RD_ST66SV | RD_ST66SV | 3.11 |
| M_ST45TS | M_ST45TS | M_ST45TS | 4.17 |
| M_ST32SA | M_ST32SA | M_ST32SA | 5.60 |
| M_ST26TA | M_ST26TA | M_ST26TA | 7.42 |
| RD_ST55TA | RD_ST55TA | RD_ST55TA | 3.54 |
| ST5SV | ST5SV | ST5SV | 4.92 |
| M_ST26CV | M_ST26CV | M_ST26CV | 7.48 |
| M_ST58TA | M_ST58TA | M_ST58TA | 7.35 |
| M_ST40TA | M_ST40TA | M_ST40TA | 7.16 |
| M_ST40TS | M_ST40TS | M_ST40TS | 2.02 |
| M_ST21SV | M_ST21SV | M_ST21SV | 6.20 |
| M_ST35SA | M_ST35SA | M_ST35SA | 2.73 |
| M_ST15TA | M_ST15TA | M_ST15TA | 6.07 |
| M_ST54CV | M_ST54CV | M_ST54CV | 1.75 |
prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,predict(bDXml,TADPOLE_DX_TEST)),"MCI vs Dementia")
MCI vs Dementia
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.792 | 0.742 | 0.841 |
pander::pander(prBin$accc)
| est | lower | upper |
|---|---|---|
| 0.713 | 0.665 | 0.758 |
pander::pander(prBin$berror)
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.31 | 0.261 | 0.367 |
pander::pander(prBin$sensitivity)
| est | lower | upper |
|---|---|---|
| 0.643 | 0.54 | 0.737 |
par(op)
cmax <- apply(bDXml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]
adma <- bDXml$bagging$formulaNetwork[cnames,cnames]
adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr
fc <- cluster_optimal(gr)
plot(fc, gr,
edge.width=10*E(gr)$weight,
vertex.size=10*cmax,
vertex.label.cex=0.75,
vertex.label.dist=0,
main="MCI vs Dementia Diagnosis")
par(op)
clusterFeatures <- fc$names
sm$coefficients$DeltaAUC <- (sm$coefficients$full.AUC-sm$coefficients$r.AUC)
tableMCI_De <- sm$coefficients[clusterFeatures,
c("Estimate",
"lower",
"OR",
"upper",
"full.AUC",
"DeltaAUC",
"z.IDI",
"Frequency")]
nugget <- fc$membership
names(nugget) <- clusterFeatures
tableMCI_De$Cluster <- nugget[rownames(tableMCI_De)]
rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()
for (ddet in c(1:length(rnames)))
{
description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames
tableMCI_De$Description <- description[rownames(tableMCI_De)]
pander::pander(tableMCI_De)
| Estimate | lower | OR | upper | full.AUC | DeltaAUC | z.IDI | Frequency | Cluster | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| M_ST24TA | -48.263 | 1.01e-24 | 1.10e-21 | 1.19e-18 | 0.757 | 0.06716 | 10.63 | 1.00 | 1 | Cortical Thickness Average of LeftEntorhinal |
| M_ST32CV | -17.997 | 1.96e-10 | 1.53e-08 | 1.19e-06 | 0.757 | 0.03094 | 6.92 | 1.00 | 1 | Volume (Cortical Parcellation) of LeftInferiorTemporal |
| M_ST24CV | -27.345 | 1.26e-14 | 1.33e-12 | 1.41e-10 | 0.745 | 0.05146 | 9.01 | 1.00 | 2 | Volume (Cortical Parcellation) of LeftEntorhinal |
| M_ST46TS | 151.043 | 2.49e+41 | 3.95e+65 | 6.29e+89 | 0.756 | 0.01183 | 5.07 | 1.00 | 1 | Cortical Thickness Standard Deviation of LeftParsOrbitalis |
| M_ST31CV | -10.484 | 1.52e-06 | 2.80e-05 | 5.16e-04 | 0.740 | 0.02480 | 6.36 | 0.75 | 1 | Volume (Cortical Parcellation) of LeftInferiorParietal |
| M_ST30SV | 4.199 | 1.71e+01 | 6.66e+01 | 2.59e+02 | 0.738 | 0.02072 | 5.63 | 1.00 | 2 | Volume (WM Parcellation) of LeftInferiorLateralVentricle |
| M_ST24SA | 6.624 | 6.07e+01 | 7.53e+02 | 9.35e+03 | 0.743 | 0.00762 | 4.85 | 0.75 | 2 | Surface Area of LeftEntorhinal |
| Hippocampus | -14.025 | 6.53e-08 | 8.11e-07 | 1.01e-05 | 0.726 | 0.04313 | 8.96 | 0.90 | 3 | NA |
| RD_ST52TA | 1.761 | 2.96e+00 | 5.82e+00 | 1.14e+01 | 0.735 | 0.00859 | 5.05 | 0.85 | 2 | Cortical Thickness Average of LeftPrecuneus |
| M_ST43TS | 151.462 | 2.65e+38 | 6.01e+65 | 1.37e+93 | 0.739 | 0.00776 | 4.55 | 1.00 | 2 | Cortical Thickness Standard Deviation of LeftParacentral |
| M_ST12SV | -20.770 | 1.36e-11 | 9.54e-10 | 6.69e-08 | 0.731 | 0.03630 | 7.66 | 0.90 | 3 | Volume (WM Parcellation) of LeftAmygdala |
| RD_ST32TA | 0.965 | 1.81e+00 | 2.62e+00 | 3.79e+00 | 0.732 | 0.01723 | 5.00 | 0.70 | 3 | Cortical Thickness Average of LeftInferiorTemporal |
| M_ST129TS | 40.276 | 3.94e+10 | 3.10e+17 | 2.45e+24 | 0.728 | 0.00473 | 4.87 | 0.40 | 4 | Cortical Thickness Standard Deviation of LeftInsula |
| M_ST47CV | 3.612 | 7.90e+00 | 3.70e+01 | 1.74e+02 | 0.733 | 0.01282 | 4.49 | 0.30 | 1 | Volume (Cortical Parcellation) of LeftParsTriangularis |
| M_ST32TA | -68.352 | 6.65e-37 | 2.07e-30 | 6.42e-24 | 0.728 | 0.02254 | 7.46 | 0.95 | 3 | Cortical Thickness Average of LeftInferiorTemporal |
| M_ST60TS | 48.891 | 5.52e+13 | 1.71e+21 | 5.31e+28 | 0.724 | 0.01475 | 5.47 | 0.60 | 3 | Cortical Thickness Standard Deviation of LeftTemporalPole |
| M_ST39CV | 5.651 | 2.87e+01 | 2.85e+02 | 2.82e+03 | 0.735 | 0.01239 | 4.73 | 0.45 | 5 | Volume (Cortical Parcellation) of LeftMedialOrbitofrontal |
| M_ST13TS | 107.209 | 4.04e+29 | 3.63e+46 | 3.27e+63 | 0.723 | 0.00859 | 5.31 | 0.65 | 3 | Cortical Thickness Standard Deviation of LeftBankssts |
| M_ST60TA | -23.861 | 2.25e-13 | 4.34e-11 | 8.36e-09 | 0.718 | 0.03383 | 7.50 | 0.70 | 4 | Cortical Thickness Average of LeftTemporalPole |
| RD_ST35TA | 1.302 | 2.23e+00 | 3.68e+00 | 6.06e+00 | 0.723 | 0.01661 | 4.99 | 0.75 | 4 | Cortical Thickness Average of LeftLateralOccipital |
| M_ST40CV | -7.280 | 1.28e-04 | 6.90e-04 | 3.71e-03 | 0.719 | 0.03314 | 7.09 | 0.60 | 4 | Volume (Cortical Parcellation) of LeftMiddleTemporal |
| RD_ST66SV | -0.424 | 5.33e-01 | 6.55e-01 | 8.04e-01 | 0.735 | 0.00623 | 3.92 | 0.55 | 5 | Volume (WM Parcellation) of LeftVessel |
| M_ST32SA | -2.607 | 3.75e-02 | 7.37e-02 | 1.45e-01 | 0.725 | 0.03450 | 6.52 | 0.60 | 5 | Surface Area of LeftInferiorTemporal |
| M_ST26CV | -1.809 | 7.47e-02 | 1.64e-01 | 3.59e-01 | 0.723 | 0.01140 | 4.34 | 0.25 | 5 | Volume (Cortical Parcellation) of LeftFusiform |
| M_ST40TA | -28.750 | 6.76e-16 | 3.27e-13 | 1.58e-10 | 0.727 | 0.03978 | 7.36 | 0.45 | 5 | Cortical Thickness Average of LeftMiddleTemporal |
TADPOLE_DX_TRAIND <- GDSTMDecorrelation(TADPOLE_DX_TRAIN,Outcome="DX",
thr=0.6,
type="RLM",
method="spearman",
verbose = TRUE)
#>
#> Included: 196 , Uni p: 0.01242039 To Outcome: 97 , Base: 4 , In Included: 4 , Base Cor: 14
#> 1 , Top: 38 < 0.6 >( 4 )[ 1 : 0 : 0.594 ]( 37 , 94 , 0 ),<>Tot Used: 131 , Added: 94 , Zero Std: 0 , Max Cor: 0.9891429
#> 2 , Top: 29 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0.594 ]( 27 , 35 , 37 ),<>Tot Used: 152 , Added: 35 , Zero Std: 0 , Max Cor: 0.9245065
#> 3 , Top: 17 < 0.6 >( 2 )[ 1 : 0 : 0.594 ]( 17 , 18 , 60 ),<>Tot Used: 154 , Added: 18 , Zero Std: 0 , Max Cor: 0.8463234
#> 4 , Top: 7 < 0.6 >[ TRUE ]( 1 )[ 1 : 0 : 0 ]( 7 , 8 , 74 ),<>Tot Used: 155 , Added: 8 , Zero Std: 0 , Max Cor: 0.8906106
#> 5 , Top: 3 < 0.6 >( 1 )[ 1 : 0 : 0 ]( 3 , 3 , 77 ),<>Tot Used: 155 , Added: 3 , Zero Std: 0 , Max Cor: 0.6520013
#> 6 , Top: 1 < 0.6 >[ FALSE ]( 1 )[ 1 : 0 : 0.6 ]( 1 , 1 , 79 ),<>Tot Used: 155 , Added: 1 , Zero Std: 0 , Max Cor: 0.5983268
#> [ 7 ], 0.5980715 . Cor to Base: 100 , ABase: 67
TADPOLE_DX_TESTD <- predictDecorrelate(TADPOLE_DX_TRAIND,TADPOLE_DX_TEST)
cmax <- apply(bDXmlD$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]
adma <- bDXmlD$bagging$formulaNetwork[cnames,cnames]
adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr
fc <- cluster_optimal(gr)
plot(fc, gr,
edge.width=10*E(gr)$weight,
vertex.size=10*cmax,
vertex.label.cex=0.75,
vertex.label.dist=0,
main="MCI vs Dementia Diagnosis")
par(op)
TrainFraction <- 0.60;
table(validBaselineTadpole$DX)
Dementia MCI NL 244 711 452
TADPOLECrossMRI <- subset(validBaselineTadpole,DX == "Dementia" | DX == "NL")
table(TADPOLECrossMRI$DX)
Dementia MCI NL 244 0 452
TADPOLECrossMRI$DX <- 1*(as.character(TADPOLECrossMRI$DX) == "Dementia")
table(TADPOLECrossMRI$DX)
0 1 452 244
TADPOLECrossMRI$ADAS13 <- NULL
TADPOLECrossMRI$ADAS11 <- NULL
TADPOLECrossMRI$MMSE <- NULL
TADPOLECrossMRI$RAVLT_immediate <- NULL
TADPOLECrossMRI$RAVLT_learning <- NULL
TADPOLECrossMRI$RAVLT_perc_forgetting <- NULL
TADPOLECrossMRI$RAVLT_forgetting <- NULL
TADPOLECrossMRI$FAQ <- NULL
TADPOLE_Cases <- subset(TADPOLECrossMRI,DX==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,DX==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)
TADPOLE_DX_NLDE_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_DX_NLDE_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in% rownames(TADPOLE_DX_NLDE_TRAIN)),]
pander::pander(table(TADPOLE_DX_NLDE_TRAIN$DX))
| 0 | 1 |
|---|---|
| 271 | 146 |
pander::pander(table(TADPOLE_DX_NLDE_TEST$DX))
| 0 | 1 |
|---|---|
| 181 | 98 |
par(op)
bDXmlNLDE <- BSWiMS.model(DX~.,TADPOLE_DX_NLDE_TRAIN,NumberofRepeats = 20)
[++++–++–+++-+++++-+++-+++-+-+++-+++-+++-++–++–+—++++-+++-++–++-+-+++-+–+++++-++-]…..
pander::pander(bDXmlNLDE$bagging$Jaccard.SM)
0.162
fs <- bDXmlNLDE$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)
sm <- summary(bDXmlNLDE)
pander::pander(sm$coefficients)
| Estimate | lower | OR | upper | u.Accuracy | r.Accuracy | full.Accuracy | u.AUC | r.AUC | full.AUC | IDI | NRI | z.IDI | z.NRI | Frequency | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M_ST24CV | -126.5779 | 6.26e-64 | 1.07e-55 | 1.82e-47 | 0.826 | 0.826 | 0.896 | 0.824 | 0.825 | 0.893 | 0.1686 | 1.016 | 10.95 | 14.22 | 0.90 |
| M_ST40TA | -285.7177 | 2.12e-146 | 8.21e-125 | 3.18e-103 | 0.793 | 0.826 | 0.878 | 0.783 | 0.825 | 0.878 | 0.1338 | 0.963 | 9.11 | 13.19 | 0.55 |
| M_ST31TA | -49.7253 | 4.68e-28 | 2.54e-22 | 1.38e-16 | 0.724 | 0.819 | 0.854 | 0.715 | 0.814 | 0.851 | 0.0832 | 0.808 | 7.37 | 10.36 | 0.15 |
| M_ST12SV | -70.9568 | 5.93e-38 | 1.53e-31 | 3.93e-25 | 0.800 | 0.860 | 0.889 | 0.797 | 0.858 | 0.888 | 0.0721 | 0.619 | 6.60 | 7.92 | 0.70 |
| M_ST43TA | 27.9320 | 1.52e+09 | 1.35e+12 | 1.20e+15 | 0.582 | 0.829 | 0.848 | 0.566 | 0.823 | 0.844 | 0.0728 | 0.645 | 6.60 | 7.97 | 0.10 |
| M_ST24TA | -71.8333 | 1.53e-41 | 6.36e-32 | 2.64e-22 | 0.849 | 0.893 | 0.908 | 0.841 | 0.891 | 0.905 | 0.0596 | 0.632 | 6.11 | 7.84 | 1.00 |
| Hippocampus | -32.2588 | 4.61e-19 | 9.78e-15 | 2.07e-10 | 0.835 | 0.875 | 0.908 | 0.828 | 0.871 | 0.905 | 0.0563 | 0.544 | 5.96 | 6.67 | 1.00 |
| M_ST32TA | -89.7553 | 7.83e-50 | 1.05e-39 | 1.40e-29 | 0.815 | 0.842 | 0.874 | 0.807 | 0.841 | 0.873 | 0.0675 | 0.594 | 5.89 | 7.52 | 0.35 |
| M_ST36CV | 60.0446 | 1.63e+17 | 1.19e+26 | 8.77e+34 | 0.608 | 0.889 | 0.910 | 0.603 | 0.888 | 0.908 | 0.0441 | 0.562 | 5.51 | 6.95 | 1.00 |
| M_ST32CV | -24.0787 | 1.06e-14 | 3.49e-11 | 1.14e-07 | 0.769 | 0.861 | 0.877 | 0.760 | 0.857 | 0.876 | 0.0512 | 0.632 | 5.28 | 7.94 | 0.50 |
| M_ST31CV | -26.4590 | 1.68e-16 | 3.23e-12 | 6.21e-08 | 0.717 | 0.897 | 0.910 | 0.710 | 0.894 | 0.908 | 0.0404 | 0.460 | 5.16 | 5.60 | 0.70 |
| M_ST51TA | 62.0353 | 1.28e+17 | 8.74e+26 | 5.95e+36 | 0.597 | 0.865 | 0.879 | 0.581 | 0.863 | 0.875 | 0.0502 | 0.650 | 5.12 | 8.25 | 0.25 |
| M_ST60TA | -12.5257 | 2.58e-08 | 3.63e-06 | 5.12e-04 | 0.744 | 0.832 | 0.854 | 0.739 | 0.829 | 0.851 | 0.0421 | 0.535 | 4.90 | 6.52 | 0.15 |
| M_ST24SA | 27.9763 | 2.30e+07 | 1.41e+12 | 8.66e+16 | 0.595 | 0.886 | 0.897 | 0.604 | 0.883 | 0.893 | 0.0367 | 0.538 | 4.84 | 6.67 | 0.85 |
| M_ST39CV | 23.5529 | 1.54e+06 | 1.69e+10 | 1.87e+14 | 0.580 | 0.864 | 0.879 | 0.577 | 0.864 | 0.879 | 0.0381 | 0.416 | 4.84 | 5.01 | 0.55 |
| RD_ST32TA | 4.5975 | 1.62e+01 | 9.92e+01 | 6.07e+02 | 0.686 | 0.888 | 0.908 | 0.668 | 0.885 | 0.905 | 0.0403 | 0.565 | 4.83 | 6.99 | 1.00 |
| RD_ST29SV | 5.1023 | 2.02e+01 | 1.64e+02 | 1.34e+03 | 0.664 | 0.864 | 0.878 | 0.639 | 0.864 | 0.879 | 0.0372 | 0.744 | 4.67 | 9.60 | 0.35 |
| M_ST30SV | 18.1771 | 3.65e+04 | 7.84e+07 | 1.68e+11 | 0.765 | 0.876 | 0.890 | 0.760 | 0.874 | 0.888 | 0.0365 | 0.531 | 4.50 | 6.52 | 0.80 |
| M_ST44CV | -12.8990 | 9.47e-09 | 2.50e-06 | 6.60e-04 | 0.714 | 0.851 | 0.862 | 0.710 | 0.848 | 0.859 | 0.0358 | 0.490 | 4.42 | 5.99 | 0.25 |
| M_ST40CV | -13.4866 | 3.87e-09 | 1.39e-06 | 4.99e-04 | 0.756 | 0.873 | 0.891 | 0.753 | 0.870 | 0.888 | 0.0329 | 0.524 | 4.38 | 6.37 | 0.35 |
| M_ST32SA | -2.7298 | 1.87e-02 | 6.52e-02 | 2.28e-01 | 0.645 | 0.867 | 0.873 | 0.642 | 0.862 | 0.871 | 0.0318 | 0.467 | 4.18 | 5.63 | 0.20 |
| M_ST45TA | 94.8982 | 3.42e+22 | 1.64e+41 | 7.82e+59 | 0.649 | 0.867 | 0.878 | 0.637 | 0.868 | 0.879 | 0.0328 | 0.682 | 4.17 | 8.58 | 0.30 |
| M_ST60TS | 81.2727 | 8.39e+18 | 1.98e+35 | 4.67e+51 | 0.621 | 0.864 | 0.875 | 0.615 | 0.861 | 0.873 | 0.0258 | 0.465 | 4.13 | 5.68 | 0.40 |
| M_ST13CV | -18.8357 | 7.01e-13 | 6.60e-09 | 6.22e-05 | 0.737 | 0.891 | 0.896 | 0.733 | 0.887 | 0.892 | 0.0236 | 0.287 | 3.94 | 3.45 | 0.40 |
| M_ST40TS | 209.4990 | 8.04e+46 | 9.64e+90 | 1.16e+135 | 0.521 | 0.862 | 0.876 | 0.513 | 0.861 | 0.877 | 0.0283 | 0.562 | 3.90 | 6.95 | 0.40 |
| M_ST31SA | -1.4821 | 1.06e-01 | 2.27e-01 | 4.86e-01 | 0.617 | 0.868 | 0.876 | 0.615 | 0.869 | 0.880 | 0.0224 | 0.429 | 3.76 | 5.16 | 0.15 |
| RD_ST39SA | -1.1342 | 1.81e-01 | 3.22e-01 | 5.73e-01 | 0.532 | 0.882 | 0.882 | 0.557 | 0.879 | 0.878 | 0.0265 | 0.469 | 3.75 | 5.68 | 0.15 |
| RD_ST40TA | 4.0553 | 7.48e+00 | 5.77e+01 | 4.45e+02 | 0.628 | 0.871 | 0.883 | 0.601 | 0.867 | 0.878 | 0.0271 | 0.403 | 3.74 | 4.87 | 0.55 |
| ST3SV | -0.3718 | 5.70e-01 | 6.90e-01 | 8.34e-01 | 0.625 | 0.878 | 0.889 | 0.627 | 0.877 | 0.886 | 0.0275 | 0.519 | 3.73 | 6.34 | 0.50 |
| M_ST24TS | 18.5224 | 7.33e+03 | 1.11e+08 | 1.67e+12 | 0.603 | 0.849 | 0.855 | 0.600 | 0.844 | 0.852 | 0.0244 | 0.426 | 3.63 | 5.15 | 0.10 |
| M_ST13SA | -1.0250 | 2.08e-01 | 3.59e-01 | 6.19e-01 | 0.640 | 0.892 | 0.902 | 0.649 | 0.889 | 0.899 | 0.0180 | 0.588 | 3.61 | 7.26 | 0.15 |
| ST127SV | -0.0347 | 9.48e-01 | 9.66e-01 | 9.84e-01 | 0.611 | 0.875 | 0.887 | 0.606 | 0.874 | 0.884 | 0.0214 | 0.419 | 3.47 | 5.07 | 0.20 |
| M_ST60SA | 1.9934 | 2.42e+00 | 7.34e+00 | 2.23e+01 | 0.542 | 0.888 | 0.897 | 0.543 | 0.885 | 0.893 | 0.0180 | 0.416 | 3.47 | 4.98 | 0.15 |
| RD_ST129SA | 0.6783 | 1.35e+00 | 1.97e+00 | 2.88e+00 | 0.552 | 0.852 | 0.858 | 0.540 | 0.850 | 0.856 | 0.0192 | 0.428 | 3.38 | 5.18 | 0.10 |
pander::pander(bDXmlNLDE$univariate[bDXmlNLDE$selectedfeatures,])
| Name | RName | ZUni | |
|---|---|---|---|
| M_ST24TA | M_ST24TA | M_ST24TA | 19.86 |
| Hippocampus | Hippocampus | Hippocampus | 18.92 |
| RD_ST32TA | RD_ST32TA | RD_ST32TA | 7.45 |
| M_ST13SA | M_ST13SA | M_ST13SA | 5.68 |
| M_ST24CV | M_ST24CV | M_ST24CV | 18.12 |
| M_ST36CV | M_ST36CV | M_ST36CV | 5.43 |
| M_ST31CV | M_ST31CV | M_ST31CV | 11.31 |
| M_ST24SA | M_ST24SA | M_ST24SA | 3.85 |
| M_ST13CV | M_ST13CV | M_ST13CV | 11.00 |
| M_ST30SV | M_ST30SV | M_ST30SV | 13.44 |
| M_ST12SV | M_ST12SV | M_ST12SV | 16.29 |
| RD_ST39SA | RD_ST39SA | RD_ST39SA | 2.06 |
| M_ST60SA | M_ST60SA | M_ST60SA | 1.58 |
| M_ST40CV | M_ST40CV | M_ST40CV | 13.69 |
| M_ST32TA | M_ST32TA | M_ST32TA | 14.97 |
| M_ST15TA | M_ST15TA | M_ST15TA | 8.87 |
| RD_ST40TA | RD_ST40TA | RD_ST40TA | 6.14 |
| M_ST32CV | M_ST32CV | M_ST32CV | 14.25 |
| M_ST39CV | M_ST39CV | M_ST39CV | 4.28 |
| M_ST40TA | M_ST40TA | M_ST40TA | 14.37 |
| M_ST40TS | M_ST40TS | M_ST40TS | 1.08 |
| ST3SV | ST3SV | ST3SV | 6.66 |
| M_ST32SA | M_ST32SA | M_ST32SA | 7.26 |
| M_ST31SA | M_ST31SA | M_ST31SA | 5.88 |
| M_ST23CV | M_ST23CV | M_ST23CV | 2.67 |
| M_ST60TS | M_ST60TS | M_ST60TS | 5.19 |
| ST127SV | ST127SV | ST127SV | 5.17 |
| M_ST45TA | M_ST45TA | M_ST45TA | 5.98 |
| RD_ST29SV | RD_ST29SV | RD_ST29SV | 5.88 |
| RD_ST23TA | RD_ST23TA | RD_ST23TA | 1.63 |
| M_ST51TA | M_ST51TA | M_ST51TA | 4.57 |
| M_ST60TA | M_ST60TA | M_ST60TA | 11.05 |
| M_ST44CV | M_ST44CV | M_ST44CV | 10.56 |
| M_ST13TS | M_ST13TS | M_ST13TS | 4.04 |
| M_ST24TS | M_ST24TS | M_ST24TS | 5.33 |
| RD_ST129SA | RD_ST129SA | RD_ST129SA | 1.15 |
| M_ST18SV | M_ST18SV | M_ST18SV | 1.41 |
| M_ST13TA | M_ST13TA | M_ST13TA | 11.70 |
| M_ST40SA | M_ST40SA | M_ST40SA | 6.62 |
| M_ST43TA | M_ST43TA | M_ST43TA | 4.04 |
| M_ST31TA | M_ST31TA | M_ST31TA | 11.19 |
| M_ST47CV | M_ST47CV | M_ST47CV | 3.73 |
| M_ST49TS | M_ST49TS | M_ST49TS | 3.02 |
prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(bDXmlNLDE,TADPOLE_DX_NLDE_TEST)),"NL vs Dementia")
NL vs Dementia
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.939 | 0.907 | 0.971 |
pander::pander(prBin$accc)
| est | lower | upper |
|---|---|---|
| 0.871 | 0.826 | 0.908 |
pander::pander(prBin$berror)
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.154 | 0.111 | 0.203 |
pander::pander(prBin$sensitivity)
| est | lower | upper |
|---|---|---|
| 0.755 | 0.658 | 0.836 |
par(op)
cmax <- apply(bDXmlNLDE$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]
adma <- bDXmlNLDE$bagging$formulaNetwork[cnames,cnames]
adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr
fc <- cluster_optimal(gr)
plot(fc, gr,
edge.width=10*E(gr)$weight,
vertex.size=10*cmax,
vertex.label.cex=0.75,
vertex.label.dist=0,
main="NL vs Dementia Diagnosis")
par(op)
clusterFeatures <- fc$names
sm$coefficients$DeltaAUC <- (sm$coefficients$full.AUC-sm$coefficients$r.AUC)
tableNL_DE <- sm$coefficients[clusterFeatures,
c("Estimate",
"lower",
"OR",
"upper",
"full.AUC",
"DeltaAUC",
"z.IDI",
"Frequency")]
nugget <- fc$membership
names(nugget) <- clusterFeatures
tableNL_DE$Cluster <- nugget[rownames(tableNL_DE)]
rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
description <- character()
for (ddet in c(1:length(rnames)))
{
description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames
tableNL_DE$Description <- description[rownames(tableNL_DE)]
pander::pander(tableNL_DE)
| Estimate | lower | OR | upper | full.AUC | DeltaAUC | z.IDI | Frequency | Cluster | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| M_ST24TA | -71.833 | 1.53e-41 | 6.36e-32 | 2.64e-22 | 0.905 | 0.01339 | 6.11 | 1.00 | 1 | Cortical Thickness Average of LeftEntorhinal |
| Hippocampus | -32.259 | 4.61e-19 | 9.78e-15 | 2.07e-10 | 0.905 | 0.03317 | 5.96 | 1.00 | 1 | NA |
| RD_ST32TA | 4.598 | 1.62e+01 | 9.92e+01 | 6.07e+02 | 0.905 | 0.01967 | 4.83 | 1.00 | 1 | Cortical Thickness Average of LeftInferiorTemporal |
| M_ST24CV | -126.578 | 6.26e-64 | 1.07e-55 | 1.82e-47 | 0.893 | 0.06773 | 10.95 | 0.90 | 2 | Volume (Cortical Parcellation) of LeftEntorhinal |
| M_ST36CV | 60.045 | 1.63e+17 | 1.19e+26 | 8.77e+34 | 0.908 | 0.01951 | 5.51 | 1.00 | 1 | Volume (Cortical Parcellation) of LeftLateralOrbitofrontal |
| M_ST31CV | -26.459 | 1.68e-16 | 3.23e-12 | 6.21e-08 | 0.908 | 0.01418 | 5.16 | 0.70 | 1 | Volume (Cortical Parcellation) of LeftInferiorParietal |
| M_ST24SA | 27.976 | 2.30e+07 | 1.41e+12 | 8.66e+16 | 0.893 | 0.00982 | 4.84 | 0.85 | 2 | Surface Area of LeftEntorhinal |
| M_ST13CV | -18.836 | 7.01e-13 | 6.60e-09 | 6.22e-05 | 0.892 | 0.00551 | 3.94 | 0.40 | 2 | Volume (Cortical Parcellation) of LeftBankssts |
| M_ST30SV | 18.177 | 3.65e+04 | 7.84e+07 | 1.68e+11 | 0.888 | 0.01361 | 4.50 | 0.80 | 2 | Volume (WM Parcellation) of LeftInferiorLateralVentricle |
| M_ST12SV | -70.957 | 5.93e-38 | 1.53e-31 | 3.93e-25 | 0.888 | 0.02946 | 6.60 | 0.70 | 3 | Volume (WM Parcellation) of LeftAmygdala |
| M_ST40CV | -13.487 | 3.87e-09 | 1.39e-06 | 4.99e-04 | 0.888 | 0.01827 | 4.38 | 0.35 | 2 | Volume (Cortical Parcellation) of LeftMiddleTemporal |
| M_ST32TA | -89.755 | 7.83e-50 | 1.05e-39 | 1.40e-29 | 0.873 | 0.03211 | 5.89 | 0.35 | 3 | Cortical Thickness Average of LeftInferiorTemporal |
| RD_ST40TA | 4.055 | 7.48e+00 | 5.77e+01 | 4.45e+02 | 0.878 | 0.01105 | 3.74 | 0.55 | 2 | Cortical Thickness Average of LeftMiddleTemporal |
| M_ST32CV | -24.079 | 1.06e-14 | 3.49e-11 | 1.14e-07 | 0.876 | 0.01922 | 5.28 | 0.50 | 3 | Volume (Cortical Parcellation) of LeftInferiorTemporal |
| M_ST39CV | 23.553 | 1.54e+06 | 1.69e+10 | 1.87e+14 | 0.879 | 0.01519 | 4.84 | 0.55 | 3 | Volume (Cortical Parcellation) of LeftMedialOrbitofrontal |
| M_ST40TA | -285.718 | 2.12e-146 | 8.21e-125 | 3.18e-103 | 0.878 | 0.05294 | 9.11 | 0.55 | 3 | Cortical Thickness Average of LeftMiddleTemporal |
| M_ST40TS | 209.499 | 8.04e+46 | 9.64e+90 | 1.16e+135 | 0.877 | 0.01558 | 3.90 | 0.40 | 3 | Cortical Thickness Standard Deviation of LeftMiddleTemporal |
| ST3SV | -0.372 | 5.70e-01 | 6.90e-01 | 8.34e-01 | 0.886 | 0.00941 | 3.73 | 0.50 | 2 | Volume (WM Parcellation) of CorpusCallosumCentral |
| M_ST60TS | 81.273 | 8.39e+18 | 1.98e+35 | 4.67e+51 | 0.873 | 0.01193 | 4.13 | 0.40 | 3 | Cortical Thickness Standard Deviation of LeftTemporalPole |
| M_ST45TA | 94.898 | 3.42e+22 | 1.64e+41 | 7.82e+59 | 0.879 | 0.01132 | 4.17 | 0.30 | 3 | Cortical Thickness Average of LeftParsOpercularis |
| RD_ST29SV | 5.102 | 2.02e+01 | 1.64e+02 | 1.34e+03 | 0.879 | 0.01484 | 4.67 | 0.35 | 3 | Volume (WM Parcellation) of LeftHippocampus |
| M_ST51TA | 62.035 | 1.28e+17 | 8.74e+26 | 5.95e+36 | 0.875 | 0.01207 | 5.12 | 0.25 | 2 | Cortical Thickness Average of LeftPrecentral |
| M_ST44CV | -12.899 | 9.47e-09 | 2.50e-06 | 6.60e-04 | 0.859 | 0.01061 | 4.42 | 0.25 | 2 | Volume (Cortical Parcellation) of LeftParahippocampal |
TrainFraction <- 0.60;
MCIPrognosisIDs <- c(MCIconverters$PTID,MCI_No_converters$PTID)
TADPOLECrossMRI <- validBaselineTadpole[MCIPrognosisIDs,]
table(TADPOLECrossMRI$DX)
Dementia MCI NL 0 680 0
TADPOLECrossMRI$DX <- NULL
TADPOLECrossMRI$status <- 1*(rownames(TADPOLECrossMRI) %in% MCIconverters$PTID)
table(TADPOLECrossMRI$status)
0 1 436 244
TADPOLECrossMRI$TimeToEvent <- numeric(nrow(TADPOLECrossMRI))
TADPOLECrossMRI[MCIconverters$PTID,"TimeToEvent"] <- MCIconverters$TimeToEvent
TADPOLECrossMRI[MCI_No_converters$PTID,"TimeToEvent"] <- MCI_No_converters$TimeToEvent
TADPOLE_Cases <- subset(TADPOLECrossMRI,status==1)
TADPOLE_Controls <- subset(TADPOLECrossMRI,status==0)
trainCasesSet <- sample(nrow(TADPOLE_Cases),nrow(TADPOLE_Cases)*TrainFraction)
trainControlSet <- sample(nrow(TADPOLE_Controls),nrow(TADPOLE_Controls)*TrainFraction)
TADPOLE_Conv_TRAIN <- rbind(TADPOLE_Cases[trainCasesSet,],TADPOLE_Controls[trainControlSet,])
TADPOLE_Conv_TEST <- TADPOLECrossMRI[!(rownames(TADPOLECrossMRI) %in%
rownames(TADPOLE_Conv_TRAIN)),]
pander::pander(table(TADPOLE_Conv_TRAIN$status))
| 0 | 1 |
|---|---|
| 261 | 146 |
pander::pander(table(TADPOLE_Conv_TEST$status))
| 0 | 1 |
|---|---|
| 175 | 98 |
par(op)
bConvml <- BSWiMS.model(Surv(TimeToEvent,status)~1,TADPOLE_Conv_TRAIN,NumberofRepeats = 20)
[++–++-++-++—++-++-++-++—++-++-++-++-++-++-++-++-++-++-+++–++—]….
pander::pander(bConvml$bagging$Jaccard.SM)
0.303
fs <- bConvml$bagging$frequencyTable
barplot(fs[order(-fs)],las=2,main="Selected Features",cex.names = 0.5)
sm <- summary(bConvml)
pander::pander(sm$coefficients)
| Estimate | lower | HR | upper | u.Accuracy | r.Accuracy | full.Accuracy | u.AUC | r.AUC | full.AUC | IDI | NRI | z.IDI | z.NRI | Frequency | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FAQ | 0.05263 | 1.04e+00 | 1.05e+00 | 1.07e+00 | 0.727 | 0.747 | 0.773 | 0.691 | 0.754 | 0.776 | 0.04434 | 0.566 | 6.47 | 7.12 | 1.00 |
| ADAS13 | 0.05239 | 1.04e+00 | 1.05e+00 | 1.07e+00 | 0.710 | 0.763 | 0.773 | 0.709 | 0.765 | 0.776 | 0.04892 | 0.469 | 5.95 | 5.56 | 1.00 |
| M_ST12SV | -28.54614 | 2.77e-17 | 4.00e-13 | 5.78e-09 | 0.716 | 0.746 | 0.764 | 0.713 | 0.748 | 0.769 | 0.02954 | 0.492 | 5.53 | 5.85 | 1.00 |
| ADAS11 | 0.04839 | 1.03e+00 | 1.05e+00 | 1.07e+00 | 0.688 | 0.720 | 0.751 | 0.679 | 0.729 | 0.756 | 0.04085 | 0.449 | 5.42 | 5.34 | 1.00 |
| RAVLT_perc_forgetting | 0.00478 | 1.00e+00 | 1.00e+00 | 1.01e+00 | 0.658 | 0.760 | 0.754 | 0.664 | 0.759 | 0.757 | 0.02945 | 0.447 | 4.78 | 5.27 | 0.90 |
| M_ST29SV | -14.56677 | 1.62e-09 | 4.72e-07 | 1.38e-04 | 0.707 | 0.746 | 0.755 | 0.704 | 0.748 | 0.758 | 0.01957 | 0.320 | 4.36 | 3.74 | 0.85 |
| RD_ST31TA | 2.30138 | 3.62e+00 | 9.99e+00 | 2.76e+01 | 0.613 | 0.772 | 0.773 | 0.587 | 0.776 | 0.777 | 0.01551 | 0.373 | 4.36 | 4.42 | 0.65 |
| M_ST40CV | -11.34356 | 7.50e-08 | 1.18e-05 | 1.87e-03 | 0.711 | 0.748 | 0.758 | 0.702 | 0.751 | 0.761 | 0.01683 | 0.306 | 4.29 | 3.56 | 0.95 |
| M_ST40SA | -1.03616 | 2.24e-01 | 3.55e-01 | 5.63e-01 | 0.655 | 0.739 | 0.750 | 0.650 | 0.745 | 0.756 | 0.01636 | 0.358 | 4.27 | 4.18 | 0.20 |
| RAVLT_immediate | -0.01992 | 9.72e-01 | 9.80e-01 | 9.89e-01 | 0.655 | 0.769 | 0.765 | 0.672 | 0.770 | 0.771 | 0.02467 | 0.426 | 4.19 | 5.02 | 1.00 |
| RD_ST49SA | -1.91809 | 5.61e-02 | 1.47e-01 | 3.85e-01 | 0.500 | 0.751 | 0.752 | 0.521 | 0.756 | 0.758 | 0.01281 | 0.242 | 3.73 | 2.85 | 0.70 |
| M_ST44TS | 17.15271 | 5.00e+03 | 2.81e+07 | 1.58e+11 | 0.548 | 0.752 | 0.759 | 0.553 | 0.761 | 0.770 | 0.01408 | 0.364 | 3.67 | 4.28 | 0.15 |
| M_ST14TS | 5.16485 | 8.09e+00 | 1.75e+02 | 3.79e+03 | 0.606 | 0.747 | 0.746 | 0.595 | 0.749 | 0.748 | 0.00897 | 0.238 | 3.23 | 2.75 | 0.10 |
pander::pander(bConvml$univariate[bConvml$selectedfeatures,])
| Name | RName | ZUni | |
|---|---|---|---|
| ADAS13 | ADAS13 | ADAS13 | 11.37 |
| FAQ | FAQ | FAQ | 8.88 |
| M_ST39SA | M_ST39SA | M_ST39SA | 6.29 |
| M_ST12SV | M_ST12SV | M_ST12SV | 10.17 |
| RD_ST31TA | RD_ST31TA | RD_ST31TA | 3.78 |
| RAVLT_immediate | RAVLT_immediate | RAVLT_immediate | 8.89 |
| ADAS11 | ADAS11 | ADAS11 | 9.90 |
| M_ST56SA | M_ST56SA | M_ST56SA | 4.74 |
| M_ST29SV | M_ST29SV | M_ST29SV | 9.88 |
| M_ST40CV | M_ST40CV | M_ST40CV | 9.70 |
| RAVLT_perc_forgetting | RAVLT_perc_forgetting | RAVLT_perc_forgetting | 7.89 |
| M_ST14TS | M_ST14TS | M_ST14TS | 5.30 |
| M_ST59SA | M_ST59SA | M_ST59SA | 3.64 |
| M_ST59CV | M_ST59CV | M_ST59CV | 7.06 |
| M_ST40SA | M_ST40SA | M_ST40SA | 6.75 |
| RD_ST49TA | RD_ST49TA | RD_ST49TA | 2.08 |
| RD_ST49SA | RD_ST49SA | RD_ST49SA | 2.15 |
| RAVLT_learning | RAVLT_learning | RAVLT_learning | 6.31 |
| M_ST44TS | M_ST44TS | M_ST44TS | 2.45 |
ptestl <- predict(bConvml,TADPOLE_Conv_TEST,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)
ptestr <- predict(bConvml,TADPOLE_Conv_TEST,type="risk")
eventCases <- subset(TADPOLE_Conv_TEST,status==1)
plot(1.0/ptestr[rownames(eventCases)]~eventCases$TimeToEvent)
pander::pander(cor.test(eventCases$TimeToEvent,1.0/ptestr[rownames(eventCases)],method="spearman"))
| Test statistic | P value | Alternative hypothesis | rho |
|---|---|---|---|
| 104589 | 0.000801 * * * | two.sided | 0.333 |
perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
TADPOLE_Conv_TEST$status,
ptestl,
ptestr)
prSurv <- predictionStats_survival(perdsurv,"MCI to AD Conversion")
pander::pander(prSurv$CIRisk)
| median | lower | upper |
|---|---|---|
| 0.818 | 0.775 | 0.858 |
pander::pander(prSurv$CILp)
| median | lower | upper |
|---|---|---|
| 0.837 | 0.786 | 0.882 |
pander::pander(prSurv$spearmanCI)
| 50% | 2.5% | 97.5% |
|---|---|---|
| 0.336 | 0.127 | 0.517 |
prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to AD Conversion")
MCI to AD Conversion
pander::pander(prBin$aucs)
| est | lower | upper |
|---|---|---|
| 0.836 | 0.787 | 0.885 |
pander::pander(prBin$CM.analysis$tab)
| Outcome + | Outcome - | Total | |
|---|---|---|---|
| Test + | 78 | 48 | 126 |
| Test - | 20 | 127 | 147 |
| Total | 98 | 175 | 273 |
par(op)
cmax <- apply(bConvml$bagging$formulaNetwork,2,max)
cnames <- names(cmax[cmax>=0.25])
cmax <- cmax[cnames]
adma <- bConvml$bagging$formulaNetwork[cnames,cnames]
adma[adma<0.15] <- 0;
gr <- graph_from_adjacency_matrix(adma,mode = "undirected",diag = FALSE,weighted=TRUE)
gr$layout <- layout_with_fr
fc <- cluster_optimal(gr)
plot(fc, gr,
edge.width=5*E(gr)$weight,
vertex.size=20*cmax,
vertex.label.cex=0.75,
vertex.label.dist=0,
main="MCI to Dementia Conversion")
par(op)
clusterFeatures <- fc$names
sm$coefficients$DeltaAUC <- (sm$coefficients$full.AUC-sm$coefficients$r.AUC)
tableMCI_to_Dem <- sm$coefficients[clusterFeatures,
c("Estimate",
"lower",
"HR",
"upper",
"full.AUC",
"DeltaAUC",
"z.IDI",
"Frequency")]
nugget <- fc$membership
names(nugget) <- clusterFeatures
tableMCI_to_Dem$Cluster <- nugget[rownames(tableMCI_to_Dem)]
rnames <- clusterFeatures[str_detect(clusterFeatures,"ST")]
frnames <- rnames
rnames <- str_replace_all(rnames,"M_","")
rnames <- str_replace_all(rnames,"RD_","")
rnames <- str_replace_all(rnames,"Ba_","")
rnames <- str_replace_all(rnames,"De_","")
description <- character()
for (ddet in c(1:length(rnames)))
{
description <- c(description,TADPOLE_D1_D2_Dict$TEXT[str_detect(TADPOLE_D1_D2_Dict$FLDNAME,rnames[ddet])][1])
}
names(description) <- frnames
tableMCI_to_Dem$Description <- description[rownames(tableMCI_to_Dem)]
pander::pander(tableMCI_to_Dem)
| Estimate | lower | HR | upper | full.AUC | DeltaAUC | z.IDI | Frequency | Cluster | Description | |
|---|---|---|---|---|---|---|---|---|---|---|
| ADAS13 | 0.05239 | 1.04e+00 | 1.05e+00 | 1.07e+00 | 0.776 | 0.01097 | 5.95 | 1.00 | 1 | NA |
| FAQ | 0.05263 | 1.04e+00 | 1.05e+00 | 1.07e+00 | 0.776 | 0.02207 | 6.47 | 1.00 | 1 | NA |
| M_ST12SV | -28.54614 | 2.77e-17 | 4.00e-13 | 5.78e-09 | 0.769 | 0.02173 | 5.53 | 1.00 | 1 | Volume (WM Parcellation) of LeftAmygdala |
| RD_ST31TA | 2.30138 | 3.62e+00 | 9.99e+00 | 2.76e+01 | 0.777 | 0.00118 | 4.36 | 0.65 | 1 | Cortical Thickness Average of LeftInferiorParietal |
| RAVLT_immediate | -0.01992 | 9.72e-01 | 9.80e-01 | 9.89e-01 | 0.771 | 0.00118 | 4.19 | 1.00 | 1 | NA |
| ADAS11 | 0.04839 | 1.03e+00 | 1.05e+00 | 1.07e+00 | 0.756 | 0.02717 | 5.42 | 1.00 | 2 | NA |
| M_ST29SV | -14.56677 | 1.62e-09 | 4.72e-07 | 1.38e-04 | 0.758 | 0.01044 | 4.36 | 0.85 | 2 | Volume (WM Parcellation) of LeftHippocampus |
| M_ST40CV | -11.34356 | 7.50e-08 | 1.18e-05 | 1.87e-03 | 0.761 | 0.00994 | 4.29 | 0.95 | 2 | Volume (Cortical Parcellation) of LeftMiddleTemporal |
| RAVLT_perc_forgetting | 0.00478 | 1.00e+00 | 1.00e+00 | 1.01e+00 | 0.757 | -0.00197 | 4.78 | 0.90 | 2 | NA |
| RD_ST49SA | -1.91809 | 5.61e-02 | 1.47e-01 | 3.85e-01 | 0.758 | 0.00180 | 3.73 | 0.70 | 2 | Surface Area of LeftPostcentral |